Group communication system (GCS) refers to a communication system where communication is based, or includes, communication using one-to-many type of protocols. Example of such protocols is multicast and broadcast protocols.
One example environment for the embodiments is a database cluster arrangement (referred also in the disclosure as database management system (DBMS) or database arrangement). A typical database cluster arrangement includes a plurality of database servers that communicate with each other for replication and synchronization purposes. Transactions processing in a database server will be replicated to other database servers in the cluster, for example, by sending unicast, multicast or broadcast messages. It is desirable that replication be performed in a reliable and fast manner.
Further, some of the database servers may be located far away from each other, and be coupled via Wide Area Networks (WANs). As WANs typically have limited support for multicast or broadcast messages to be sent, separate unicast messages are required to be sent to these database servers. Moreover, WANs often have limited throughput, and are often unable to cope with varying demands of network traffic.
In another conventional database cluster arrangement, a client-server approach is implemented by using a dedicated ‘daemon’ for each cluster of database servers. When a particular database server is updated, that particular database server sends a message to its dedicated daemon. The daemon then propagates the message to other daemons dedicated to other clusters, which then propagate the message to database servers in their respective clusters.
However, this conventional technique also suffers from a number of disadvantages. Firstly, using a daemon for propagating messages adds an additional hop in communication. Secondly, a daemon can become a communication bottleneck if it has too many database servers as its clients. Thirdly, a daemon is a single point of failure in a cluster. In an event of failure of the daemon, the whole cluster may become inaccessible.
Therefore, there exists a need for a database cluster arrangement that is capable of facilitating reliable and efficient communication and synchronization of data.